Efficient Program Slicing Algorithms for Measuring Functional Cohesion and Parallelism
نویسنده
چکیده
Program slicing is the task of finding all statements in a program that directly or indirectly influence the value of a variable occurrence. The set of statements that can affect the value of a variable at some point in a program is called a program slice. In several software engineering applications, such as program debugging and measuring program cohesion and parallelism, several slices are computed at different program points. In this paper, algorithms are introduced to compute all backward and forward static slices of a computer program by traversing the program representation graph once. The program representation graph used in this paper is called Program Dependence Graph (PDG). We have conducted an experimental comparison study using 25 software modules to show the effectiveness of the introduced algorithm for computing all backward static slices over single-point slicing approaches in computing the parallelism and functional cohesion of program modules. The effectiveness of the algorithm is measured in terms of time execution and number of traversed PDG edges. The comparison study results indicate that using the introduced algorithm considerably saves the slicing time and effort required to measure module parallelism and functional cohesion. Keywords—Backward slicing, cohesion measure, forward slicing, parallelism measure, program dependence graph, program slicing, static slicing.
منابع مشابه
An Efficient Algorithm for Computing all Program Static Slices
Program slicing is the task of finding all statements in a program that directly, or indirectly, influence the value of a variable occurrence. The set of statements that can affect the value of a variable at some point in a program is called a program backward slice. In several software engineering applications, such as program debugging and measuring the program cohesion and parallelism, sever...
متن کاملAn Efficient Algorithm for Computing all Program Forward Static Slices
Program slicing is the task of finding all statements in a program that directly or indirectly influence the value of a variable occurrence. The set of statements that can affect the value of a variable at some point in a program is called a program backward slice. In several software engineering applications, such as program debugging and measuring program cohesion and parallelism, several sli...
متن کاملCohesion Metrics
We consider ways of measuring the cohesion of program fragments based upon techniques for program slicing, following the work of Ott et al 12, 2, 13, 11, 10]. The approach is based on the idea that the intersection of a program's slices represents that part of the fragment which is cohesive. We produce cohesion metrics that are structurally identical to those of Ott and Thuss 13], the diierence...
متن کاملAnalyzing Slicing of Program through Cohesion Metric
This paper presents a new cohesion metric for a program which is used to analyze the slicing criterion. Based on the value of propose cohesion metric it is decided to perform slicing in a program or not. The propose cohesion metrics is also evaluated analytically against Weyuker’s Property and perform comparison with the existing cohesion metrics of Meyers et al. The results in this paper shows...
متن کاملDetermine Cohesion and Coupling for Class Diagram through Slicing Techniques
High cohesion or module strength indicates that a system has been well partitioned into components which have strong internal relationships between attribute, method and class. Cohesion is an important factor in term of software design. Coupling indicates the degree of interdependence among the component of a software system. Coupling is thought to be a desirable goal in software construction, ...
متن کامل